// \u4e00-\u9fa5] 中文验证规则

Page({
  data: {
    gender: "1",
    name: '',
    mobile: '',

    idcardFrontUrl: '',
    idcardBackUrl: '',
  },
  onLoad(e) {
    // 新增：e事件对象 包含：小区、楼栋、房间号
    // 编辑：e事件对象 当前房屋的id
    this.setData({
      ...e
    })

    // 有id就是编辑业务
    if (e.id) {
      wx.setNavigationBarTitle({title: '编辑房屋信息'});
      this.getDetail(e.id)
    }
  },
  // 获取详情
  async getDetail(id) {
    let { data } = await wx.http({
      url: '/room/' + id
    })
    data.gender += '' 
    this.setData({
      ...data
    })
  },




  // 移除图片的类型（身份证正面或反面）
  //   特点：把 removePicture(1) 当做方法 
  //   原因：小程序事件执行函数可以传入实参？NO   
  //   解决：小程序的自定义属性 mark:自定义属性名=值，换了方式实现了事件执行函数传入实参
  removePicture(e) {
    // 1。得到标识
    // console.log(e.mark.key);

    // 2 判断
    if (e.mark.key == 1) {
      this.setData({
        idcardFrontUrl: ''
      })
    }
    else {
      this.setData({
        idcardBackUrl: ''
      })
    }
  },

  // 上传
  async uploadPicture(e) {
    // 1 使用选择媒体图片API：拍照、选择相册
    let res = await wx.chooseMedia({
      count: 1, // 只能选择1张图片
      mediaType: ['image'], // 只能选择图片类型
      sizeType: ['compressed'], // compressed压缩   original：原图
    })
    // console.log(res.tempFiles[0].tempFilePath);


    // 2、上传到服务器
    wx.uploadFile({
      url: wx.http.baseURL + '/upload',
      header: {
        Authorization: wx.getStorageSync('token')
      },
      filePath: res.tempFiles[0].tempFilePath,  // 我们要上传的文件
      name: 'file',
      formData: {
        type: '' // 后台要求
      },
      success: (res) => {
        let data = JSON.parse(res.data)
        if (e.mark.key == 1) {
          this.setData({
            idcardFrontUrl: data.data.url
          })
        }
        else {
          this.setData({
            idcardBackUrl: data.data.url
          })
        }

      }
    })
  },

  // 
  checkName() {
    const reg = /^[\u4e00-\u9fa5]{2,5}$/
    let key = reg.test(this.data.name)

    if (!key) {
      wx.utils.toast('请填写中文姓名!')
    }
    return key
  },
  checkMobile() {
    let reg = /^[1][3-8][0-9]{9}$/
    let key = reg.test(this.data.mobile)

    if (key == false) {
      wx.utils.toast('手机号校验不通过')
    }
    return key
  },
  checkId() {
    // 当前用户：不是输入身份证，上传身份证照片
    let key
    if (this.data.idcardFrontUrl != '' && this.data.idcardBackUrl != '') {
      key = true
    } 
    else {
      key = false
      wx.utils.toast('身份证有照片没有上传')
    }
    return key
  },

  // 提交：
  async goList() {
    // 1、校验:
    if (!this.checkName()) return
    if (!this.checkMobile()) return
    if (!this.checkId()) return

    // 2、提交数据
    delete this.data.__webviewId__
    delete this.data.status
    // 正常：新增和编辑是2个接口
    // 现在：一个接口，判断传给后台时候，是否有id
    await wx.http({
      url:'/room',
      method:'POST',
      data:this.data
    })

    // 3、reLaunch 清除所有历史记录数据，来到房屋列表
    wx.reLaunch({
      url: '/house_pkg/pages/list/index',
    })
  },

})
